package com.zust513.service;

import com.zust513.entity.Order;

import java.util.List;
import java.util.Map;

public interface OrderService {
    // 订单管理
    int getTotalDeliveryOrdersByCourierId(Integer courierId);
    int getTodayOrdersByCourierId(Integer courierId);
    int getWeekOrdersByCourierId(Integer courierId);
    int getMonthOrdersByCourierId(Integer courierId);
//    void acceptOrder(Integer orderId, Integer courierId);
    void updateOrderStatus(Integer orderId, String status);
    List<Order> getDeliveryRecordsByCourierId(Integer courierId);
    List<Order> getOrdersByCourierId(Integer courierId);

    // 新增：获取配送员的所有订单
    List<Order> getAllOrdersByCourierId(Integer courierId);

    // 收益管理
    void transferEarningsToCourier(Integer orderId);
    List<Map<String, Object>> getEarningsByCourierId(Integer courierId);

    // 获取所有待分配的订单
    List<Order> getAllPendingOrders();

    // 获取当前配送员的待配送订单
    List<Order> getPendingOrdersByCourierId(Integer courierId);

    // 接取订单
    int acceptOrder(Integer orderId, Integer courierId);

    // 确认送达
    int confirmDelivery(Integer orderId);

    //删除订单
    void withdrawAndDeleteOrders(Integer courierId, int amount);

    // 获取总订单数
    Integer getTotalOrdersCount();

    // 获取最近的订单
    List<Map<String, Object>> getRecentOrders(int limit);
}